home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / BST_SystemDocs.lha / BeastV1 / Include / BST_System / Beast.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-03  |  22.0 KB  |  683 lines

  1. #ifndef BEAST_H
  2. #define BEAST_H
  3.  
  4. /****h* Beast/Beast.h [0.1]
  5. *
  6. *    NAME
  7. *      Beast.h -- Beast types and constants
  8. *
  9. *    COPYRIGHT
  10. *      Maverick Software Development
  11. *
  12. *    FUNCTION
  13. *
  14. *    AUTHOR
  15. *      Jacco van Weert / Frans Slothouber
  16. *      GNU-C support by Jeroen Vermeulen
  17. *
  18. *    CREATION DATE
  19. *      3-May-95
  20. *
  21. *    MODIFICATION HISTORY
  22. *
  23. *    NOTES
  24. *
  25. ******
  26. */
  27.  
  28. #include <exec/types.h>
  29. #include <exec/lists.h>
  30. #include <exec/nodes.h>
  31.  
  32. typedef unsigned long BST_Method  ;
  33. typedef unsigned long BST_MethodFlags ;
  34.  
  35. #define    TAG_USER    0x80000000
  36. #define    TAG_DONE    0x00000000
  37.  
  38. #ifdef __SAS__
  39. #define rfcall(fn,p1,p2,p3) BST_MethodFlags __asm fn (register __d3 p1, register __a2 p2, register __a3 p3)
  40. #endif
  41.  
  42. #ifdef _DCC
  43. #define rfcall(fn,p1,p2,p3) BST_MethodFlags fn ( __D3 p1, __A2 p2, __A3 p3)
  44. #endif
  45.  
  46. #ifdef __GNUC__
  47. #define rfcall(fn,p1,p2,p3) BST_MethodFlags fn (void);                  \
  48.                static inline BST_MethodFlags real_ ## fn (              \
  49.                BST_MethodFlags     p1, ULONG *p2, ULONG *p3)
  50.  
  51. #define self_call(result,fn,p1,p2,p3) {                                 \
  52.         register BST_MethodFlags  selfcall_ ## p1 asm("d3") = p1;    \
  53.         register ULONG         *selfcall_ ## p2 asm("a2") = p2;    \
  54.         register ULONG         *selfcall_ ## p3 asm("a3") = p3;    \
  55.         result = fn ();                                                 \
  56.       }
  57. #endif /* GCC section */
  58.  
  59.  
  60.  
  61. /****** Beast.h/BST_Class [0.1]
  62. *
  63. *    NAME
  64. *      BST_Class -- a beast class
  65. *
  66. ************************************
  67. */
  68. struct BST_Class
  69. {
  70.   struct Node       bc_Node;
  71.   ULONG             bc_Size;
  72.   ULONG            bc_Flags;
  73. /*  struct MinList    bc_IntputPorts;
  74.   struct MinList    bc_OutputPorts; */
  75.   struct MinList    bc_Methods;
  76.   ULONG            bc_ObjectCount;
  77.   struct Library   *bc_ExtClass;
  78.   ULONG             bc_Userdata;  /* NOT USED --  */
  79. };
  80.  
  81.     /**** The BSTC_Flags (bc_Flags) ****/
  82. #define        CLASSB_B52CLASS        0
  83. #define        CLASSF_B52CLASS        (1L<<0)
  84.  
  85.  
  86. /****** Beast.h/class_MethodList [0.1]
  87. *
  88. *  NAME
  89. *    class_MethodList -- list with methods
  90. *
  91. *****************************************
  92. */
  93. struct class_MethodList
  94. {
  95.   struct MinNode  cml_Node ;
  96.   BST_Method      cml_MethodID ;
  97.   struct MinList *cml_HookList ;
  98. };
  99.  
  100.  
  101. /****** Beast.h/BST_Object [0.1]
  102. *
  103. *  NAME
  104. *    BST_Object -- a standard object
  105. *
  106. ************************************
  107. */
  108. struct BST_Object
  109. {
  110.   struct MinNode     obj_Node;
  111.   APTR             obj_DataSection;
  112.   struct MinList     obj_InputList;
  113.   struct MinList     obj_OutputList;
  114.   struct BST_Class  *obj_Class;
  115.   struct BST_Object *obj_Parent;
  116.   struct MinList     obj_Childs;
  117.   ULONG             obj_Flags;
  118. };
  119.  
  120.  
  121. /****** Beast.h/obj_InputLink [0.1]
  122. *
  123. *  NAME
  124. *    obj_InputLink --
  125. *
  126. ***********************************
  127. */
  128. struct obj_InputLink
  129. {
  130.   struct MinNode          oil_Node ;
  131.   struct BST_Object      *oil_Object ;
  132.   struct obj_OutputLink  *oil_FromMethodOOL ;
  133.   BST_Method              oil_InputMethod ;
  134. } ;
  135.  
  136. /****** Beast.h/obj_OutputLink [0.1]
  137. *
  138. *  NAME
  139. *    obj_OutputLink --
  140. *
  141. *************************************
  142. */
  143. struct obj_OutputLink
  144. {
  145.   struct MinNode         ool_Node ;
  146.   struct BST_Object     *ool_Object ;
  147.   struct obj_InputLink  *ool_ToMethodOIL ;
  148.   BST_Method             ool_OutputMethod ;
  149. } ;
  150.  
  151.  
  152.  
  153.  
  154. /****** Beast.h/BST_base [0.1]
  155. *
  156. *  NAME
  157. *    BST_base --
  158. *
  159. ******
  160. */
  161.  
  162. struct BST_base
  163. {
  164.   struct BST_Object  bb_Base ;
  165.   struct MinList     bb_DefinedClasses ;
  166. } ;
  167.  
  168.  
  169.  
  170.  
  171.  
  172. /********************************
  173.  ****                 ****
  174.  **** BEAST Standard methods ****
  175.  ****                 ****
  176.  ********************************/
  177.  
  178. #define    OBM_bits_FUNCTION 0xF0000000
  179. #define    OBM_type_None      0x00000000
  180.  
  181. #define    OBM_bits_FAMILY      0x0F000000
  182. #define    OBM_type_Plain      0x00000000
  183. #define    OBM_type_System      0x01000000
  184. #define    OBM_type_General  0x02000000
  185. #define    OBM_type_B52      0x03000000
  186. #define    OBM_type_BeaVis      0x04000000
  187. #define    OBM_type_BFS      0x05000000
  188. #define    OBM_type_BeaMM      0x06000000
  189. #define    OBM_type_BEASTAR  0x07000000
  190.  
  191.     /**** Numbers   0x0000040 - 0x000007f Free */
  192. #define OBM_local0    0x0000040
  193.     /**** Numbers   0x0000100 - 0x00007ff Free */
  194. #define OBM_local1    0x0000100
  195.     /**** Numbers     0x0004000 - 0x0004fff Free */
  196. #define OBM_local2    0x0004000
  197.     /**** Numbers   0x0100000 - 0x01fffff Free */
  198. #define    OBM_local3    0x0100000
  199.  
  200.  
  201. #define OBM_INPUT       0x0000080
  202. #define OBM_OUTPUT      0x0000081
  203. #define OBM_INPUT2      0x0000082
  204. #define OBM_OUTPUT2     0x0000083
  205. #define OBM_INPUT3      0x0000084
  206. #define OBM_OUTPUT3     0x0000085
  207. #define OBM_INPUT4      0x0000086
  208. #define OBM_OUTPUT4     0x0000087
  209. #define OBM_SYSINPUT    0x0000088
  210. #define OBM_SYSOUTPUT   0x0000089
  211. #define OBM_IDCMPINPUT    0x000008A
  212. #define OBM_IDCMPOUTPUT    0x000008B
  213. #define OBM_BVSINPUT    0x000008C
  214. #define OBM_BVSOUTPUT    0x000008D
  215. #define OBM_BEAMMINPUT  0x000008E
  216. #define OBM_BEAMMOUTPUT    0x000008F
  217. #define OBM_BFSINPUT    0x0000090
  218. #define    OBM_BFSOUTPUT    0x0000091
  219.  
  220. #define    OBM_CONTENTSINPUT  0x0000092
  221. /**** BTA_Flags for the OBM_CONTENTSINPUT method ****/
  222. #define        CONTENTSINPUT_FIXED        1
  223. #define        CONTENTSINPUT_END        5
  224.  
  225. #define OBM_CONTENTSOUTPUT 0x0000093
  226. /**** BTA_Flags for the OBM_CONTENTSOUTPUT method ****/
  227. #define        CONTENTSOUTPUT_FULL        0
  228. #define        CONTENTSOUTPUT_FIXED        1
  229. #define        CONTENTSOUTPUT_UNTILBYTE    2
  230. #define        CONTENTSOUTPUT_UNTILWORD    3
  231. #define        CONTENTSOUTPUT_UNTILLONG    4
  232. #define        CONTENTSOUTPUT_END        5
  233.  
  234. #define    OBM_ALLOCMEM    0x0000100
  235. #define    OBM_FREEMEM    0x0000101
  236. #define    OBM_LOCKMEM    0x0000102
  237. #define    OBM_UNLOCKMEM    0x0000103
  238.  
  239.  
  240. #define OBM_GETATTR     0x0001000
  241. #define OBM_SETATTR     0x0001001
  242.  
  243. #define    OBM_UPDATE    0x0001100
  244.  
  245. #define OBM_INIT        0x0040000
  246. #define OBM_DISPOSE     0x0040001
  247. #define OBM_DOWNFALL    0x0040002
  248.  
  249. #define    OBM_DUPLICATE    0x0050000
  250. #define    OBM_COPY    0x0050001
  251. #define    OBM_MOVE    0x0050002
  252. /**** BTA_Flags for the OBM_MOVE method ****/
  253. #define        MOVEB_START    0
  254. #define        MOVEF_START    (1L<<0)
  255. #define        MOVEB_END    1
  256. #define        MOVEF_END    (1L<<1)
  257. #define        MOVEB_DRAG    2
  258. #define        MOVEF_DRAG    (1L<<2)
  259.  
  260. #define    OBM_SIZE    0x0050003
  261. #define    OBM_INSERT    0x0050004
  262. #define    OBM_ADDHEAD    0x0050005
  263. #define    OBM_ADDTAIL    0x0050006
  264. #define    OBM_REMOVE    0x0050007
  265. #define    OBM_REMHEAD    0x0050008
  266. #define    OBM_REMTAIL    0x0050009
  267.  
  268.  
  269. /*********************************
  270.  **** Beast System classes methods
  271.  ****/
  272. #define    OBM_GETEACH    0x0000000|OBM_type_System
  273. #define    OBM_FOREACH    0x0000001|OBM_type_System
  274.  
  275. #define    OBM_EVENTLOOP    0x0001000|OBM_type_System
  276. #define    OBM_ADDEVENT    0x0001001|OBM_type_System
  277. #define    OBM_REMEVENT    0x0001002|OBM_type_System
  278.  
  279.  
  280.  
  281. /**********************************
  282.  **** Beast General classes methods
  283.  ****/
  284. #define    OBM_SEARCHOBJECT    0x0000000|OBM_type_General
  285. /**** BTA_Flags for the OBM_SEARCHOBJECT method ****/
  286. #define        SEARCHOBJECTMODE_bits        0x0000000F
  287. #define        SEARCHOBJECTMODEB_ONELEVEL    0
  288. #define        SEARCHOBJECTMODEF_ONELEVEL    (1L<<0)
  289. #define        SEARCHOBJECTMODEB_ALLCHILDREN    1
  290. #define        SEARCHOBJECTMODEF_ALLCHILDREN    (1L<<1)
  291.  
  292.  
  293. #define    OBM_reply_SEARCHOBJECT    0x0000001|OBM_type_General
  294.  
  295.  
  296. /***************************
  297.  **** BeaVis classes methods
  298.  ****/
  299. #define    OBM_DRAW        0x0000000|OBM_type_BeaVis
  300. #define    OBM_ENTEROBJECT        0x0000001|OBM_type_BeaVis
  301. #define    OBM_LEAVEOBJECT        0x0000002|OBM_type_BeaVis
  302. #define    OBM_OBJECTDOWN        0x0000003|OBM_type_BeaVis
  303. #define    OBM_OBJECTUP        0x0000004|OBM_type_BeaVis
  304. #define OBM_CLOSEOBJECT        0x0000005|OBM_type_BeaVis
  305.  
  306. #define    OBM_DOLAYOUT        0x0000100|OBM_type_BeaVis
  307. #define    OBM_ASKLAYOUT        0x0000101|OBM_type_BeaVis
  308. #define    OBM_REPLYLAYOUT        0x0000102|OBM_type_BeaVis
  309. #define    OBM__GETLAYOUTreply    0x0000103|OBM_type_BeaVis
  310.  
  311. #define OBM_SIZE_TOPLEFT    0x0000200|OBM_type_BeaVis
  312. #define    OBM_SIZE_TOPRIGHT    0x0000201|OBM_type_BeaVis
  313. #define    OBM_SIZE_DOWNRIGHT    0x0000202|OBM_type_BeaVis
  314. #define    OBM_SIZE_DOWNLEFT    0x0000203|OBM_type_BeaVis
  315. /**** BTA_Flags for the OBM_SIZE_xx methods ****/
  316. #define        SIZEB_START    0
  317. #define        SIZEF_START    (1L<<0)
  318. #define        SIZEB_END    1
  319. #define        SIZEF_END    (1L<<1)
  320.  
  321.  
  322. /************************
  323.  **** BFS classes methods
  324.  ****/
  325. #define OBM_LOCKFILE        0x0000000|OBM_type_BFS
  326. #define    OBM_READFILE        0x0000001|OBM_type_BFS
  327.  
  328. /***********************************
  329.  ****                     ****
  330.  **** BEAST Standard Attributes ****
  331.  ****                     ****
  332.  ***********************************/
  333.  
  334. #define BST_bits_System    0x7F000000
  335. #define BST_TAG (TAG_USER+0x40000000)
  336.  
  337. #define BTB_Ignore        29
  338. #define BTF_Ignore        (1L<<29)
  339. #define    BTB_Attributes        28
  340. #define BTF_Attributes        (1L<<28)
  341. #define BTB_UserTag        27
  342. #define BTF_UserTag        (1L<<27)
  343.  
  344. #define    BST_bits_Types        0x00F00000
  345. #define    BTA_type_Plain        0x00000000
  346. #define    BTA_type_CString    0x00100000
  347. #define    BTA_type_Object        0x00200000
  348. #define    BTA_type_Pointer    0x00300000
  349. #define    BTA_type_TagList    0x00400000
  350. #define    BTA_type_Flags        0x00500000
  351. #define    BTA_type_Tag        0x00600000
  352. #define    BTA_type_Filename    0x00700000
  353.  
  354. #define    BST_bits_Family        0x000F0000
  355. #define    BTA_type_System        0x00000000
  356. #define    BTA_type_General    0x00010000
  357. #define    BTA_type_B52        0x00020000
  358. #define    BTA_type_BeaVis        0x00030000
  359. #define    BTA_type_BFS        0x00040000
  360. #define    BTA_type_BeaMM        0x00050000
  361. #define    BTA_type_BEASTAR    0x00060000
  362.  
  363.  
  364. /************
  365.  **** Control
  366.  ****/
  367. #define BTA_CONTROL        BST_TAG|BTF_Attributes|0x000
  368. #define    BTA_NumberOf        BTA_CONTROL+0x01
  369.  
  370. /*************
  371.  **** Position
  372.  ****/
  373. #define BTA_POSITION        BST_TAG|BTF_Attributes|0x100
  374. #define    BTA_X            BTA_POSITION+0x00|BTA_type_Plain
  375. #define    BTA_Y            BTA_POSITION+0x01|BTA_type_Plain
  376. #define    BTA_Width        BTA_POSITION+0x02|BTA_type_Plain
  377. #define BTA_Height        BTA_POSITION+0x03|BTA_type_Plain
  378. #define    BTA_Size        BTA_POSITION+0x04|BTA_type_Plain
  379. #define    BTA_InnerX        BTA_POSITION+0x05|BTA_type_Plain
  380. #define    BTA_InnerY        BTA_POSITION+0x06|BTA_type_Plain
  381. #define    BTA_InnerWidth        BTA_POSITION+0x07|BTA_type_Plain
  382. #define BTA_InnerHeight        BTA_POSITION+0x08|BTA_type_Plain
  383.  
  384.  
  385. /**********
  386.  **** Types
  387.  ****/
  388. #define    BTA_TYPES        BST_TAG|BTF_Attributes|0x200
  389. #define BTA_LongNumber        BTA_TYPES+0x00|BTA_type_Plain
  390. #define    BTA_Flags        BTA_TYPES+0x01|BTA_type_Plain
  391.  
  392. #define    BTA_Pointer        BTA_TYPES+0x0A|BTA_type_Pointer
  393. #define    BTA_ByteNumber        BTA_TYPES+0x0B|BTA_type_Plain
  394. #define    BTA_WordNumber        BTA_TYPES+0x0C|BTA_type_Plain
  395. #define    BTA_FFPNumber        BTA_TYPES+0x0D|BTA_type_Plain
  396.  
  397. /***************
  398.  **** Identifier
  399.  ****/
  400. #define    BTA_IDENTIFIER        BST_TAG|BTF_Attributes|0x300
  401. #define    BTA_Title        BTA_IDENTIFIER+0x00|BTA_type_CString
  402. #define    BTA_MainObject        BTA_IDENTIFIER+0x01|BTA_type_Object
  403. #define    BTA_Object1        BTA_IDENTIFIER+0x02|BTA_type_Object
  404. #define    BTA_Object2        BTA_IDENTIFIER+0x03|BTA_type_Object
  405. #define    BTA_Object3        BTA_IDENTIFIER+0x04|BTA_type_Object
  406. #define    BTA_Object4        BTA_IDENTIFIER+0x05|BTA_type_Object
  407. #define    BTA_Object5        BTA_IDENTIFIER+0x06|BTA_type_Object
  408. #define    BTA_Object6        BTA_IDENTIFIER+0x07|BTA_type_Object
  409. #define    BTA_Object7        BTA_IDENTIFIER+0x08|BTA_type_Object
  410. #define    BTA_Object8        BTA_IDENTIFIER+0x09|BTA_type_Object
  411. #define    BTA_Object9        BTA_IDENTIFIER+0x0A|BTA_type_Object
  412. #define    BTA_Method        BTA_IDENTIFIER+0x0B|BTA_type_Plain
  413. #define    BTA_TagList        BTA_IDENTIFIER+0x0C|BTA_type_TagList
  414. #define    BTA_ClassName        BTA_IDENTIFIER+0x0D|BTA_type_CString
  415. #define    BTA_FromObject        BTA_IDENTIFIER+0x0E|BTA_type_Object
  416. #define    BTA_ToObject        BTA_IDENTIFIER+0x0F|BTA_type_Object
  417.  
  418.  
  419. /***********
  420.  **** System
  421.  ****/
  422. #define    BTA_SYSTEM        BST_TAG|BTF_Attributes|0x400
  423. #define    BTA_MemBlock        BTA_SYSTEM+0x00|BTA_type_Pointer
  424. #define    BTA_MemHandle        BTA_SYSTEM+0x01|BTA_type_Pointer
  425. #define    BTA_MemFlags        BTA_SYSTEM+0x02|BTA_type_Plain
  426. #define        MEMB_MOVEABLE_DISK    24
  427. #define        MEMF_MOVEABLE_DISK    (1L<<24)
  428. #define        MEMB_MOVEABLE_MEMORY    25
  429. #define        MEMF_MOVEABLE_MEMORY    (1L<<25)
  430. #define        MEMB_DISCARDABLE    26
  431. #define        MEMF_DISCARDABLE    (1L<<26)
  432. #define    BTA_MemSize        BTA_SYSTEM+0x03|BTA_type_Plain
  433. #define    BTA_Signals        BTA_SYSTEM+0x04|BTA_type_Flags
  434. #define    BTA_Signals_AND        BTA_SYSTEM+0x05|BTA_type_Flags
  435. #define    BTA_Signals_OR        BTA_SYSTEM+0x06|BTA_type_Flags
  436. #define    BTA_Signals_XOR        BTA_SYSTEM+0x07|BTA_type_Flags
  437. #define    BTA_MsgPort        BTA_SYSTEM+0x08|BTA_type_Pointer
  438. #define    BTA_Message        BTA_SYSTEM+0x09|BTA_type_Pointer
  439.  
  440. /********************************************
  441.  **** BEAST GENERAL CLASS TAG and definitions
  442.  ****/
  443. #define    BTA_GENERAL        BST_TAG|BTF_Attributes|BTA_type_General
  444. #define    BTA_TagListObject    BTA_GENERAL+0x0000|BTA_type_Object
  445. #define    BTA_TagListSize        BTA_GENERAL+0x0001|BTA_type_Plain
  446.  
  447. /**** BTA_Flags for the OBM_SIZE of BST_MemoryClass */
  448. #define        MEMSIZEB_RETAIN        0
  449. #define        MEMSIZEF_RETAIN        (1L<<0)
  450.  
  451.  
  452.  
  453. /****************************************
  454.  **** BEAST BFS CLASS TAG and definitions
  455.  ****/
  456. #define    BFS_FILESYSTEM        BST_TAG|BTF_Attributes|BTA_type_BFS
  457. #define    BFS_UserName        BFS_FILESYSTEM+0x0000|BTA_type_CString
  458. #define    BFS_UserPassword    BFS_FILESYSTEM+0x0001|BTA_type_CString
  459. #define    BFS_SystemName        BFS_FILESYSTEM+0x0002|BTA_type_CString
  460. #define    BFS_MountName        BFS_FILESYSTEM+0x0003|BTA_type_CString
  461. #define    BFS_LockName        BFS_FILESYSTEM+0x0004|BTA_type_CString
  462. #define    BFS_LockObject        BFS_FILESYSTEM+0x0005|BTA_type_Object
  463. #define    BFS_LockFlags        BFS_FILESYSTEM+0x0006|BTA_type_Flags
  464. #define        LOCKMODE_bits        0x0000000F
  465. #define        LOCKMODEB_READ        0
  466. #define        LOCKMODEF_READ        (1L<<0)
  467. #define        LOCKMODEB_WRITE        1
  468. #define        LOCKMODEF_WRITE        (1L<<1)
  469. #define        LOCKMODEB_NEW        2
  470. #define        LOCKMODEF_NEW        (1L<<2)
  471.  
  472. /************************************************
  473.  **** BEAST VISUAL (BeaVis) TAG's and definitions
  474.  ****/
  475. #define    BVS_SYSTEM        BST_TAG|BTF_Attributes|BTA_type_BeaVis
  476. #define    BVS_BorderType        BVS_SYSTEM+0x0000|BTA_type_Plain
  477. #define        BORDERTYPE_NONE        0
  478. #define        BORDERTYPE_LINE        1
  479. #define        BORDERTYPE_BUTTON    2
  480. #define        BORDERTYPE_STRING    3
  481. #define        BORDERTYPE_XEN        4
  482. #define    BVS_ColorScheme        BVS_SYSTEM+0x0001|BTA_type_Plain
  483. #define        COLORSCHEME_NORMAL    0
  484. #define        COLORSCHEME_PRESSED    1
  485. #define    BVS_RenderMode        BVS_SYSTEM+0x0002|BTA_type_Plain
  486. #define        RENDERMODE_NONE        0
  487. #define        RENDERMODE_LIGHT    1
  488. #define        RENDERMODE_MEDIUM    2
  489. #define        RENDERMODE_HEAVY    3
  490. #define        RENDERMODE_FULL        4
  491. #define    BVS_IRastport        BVS_SYSTEM+0x0003|BTA_type_Pointer
  492. #define    BVS_RectGadgetFlags    BVS_SYSTEM+0x0004|BTA_type_Flags
  493. #define        RECTGADGETB_ADDED    0
  494. #define        RECTGADGETF_ADDED    (1L<<0)
  495. #define        RECTGADGETB_PRESSED    1
  496. #define        RECTGADGETF_PRESSED    (1L<<1)
  497. #define        RECTGADGETB_ENTERED    2
  498. #define        RECTGADGETF_ENTERED    (1L<<2)
  499. #define        RECTGADGETB_RENDERED    3
  500. #define        RECTGADGETF_RENDERED    (1L<<3)
  501. #define    BVS_TextFlags        BVS_SYSTEM+0x0005|BTA_type_Flags
  502. #define        TEXTTYPE_bits        0x0000000F
  503. #define        TEXTTYPEB_NORMAL    0
  504. #define        TEXTTYPEF_NORMAL    (1L<<0)
  505. #define        TEXTTYPEB_BOLD        1
  506. #define        TEXTTYPEF_BOLD        (1L<<1)
  507. #define        TEXTTYPEB_ITALIC    2
  508. #define        TEXTTYPEF_ITALIC    (1L<<2)
  509. #define        TEXTTYPEB_WIDE        3
  510. #define        TEXTTYPEF_WIDE        (1L<<3)
  511. #define        TEXTTYPEB_UNDERLINED    4
  512. #define        TEXTTYPEF_UNDERLINED    (1L<<4)
  513. #define        TEXTJUST_bits        0x000000F0
  514. #define        TEXTJUSTB_LEFT        8
  515. #define        TEXTJUSTF_LEFT        (1L<<8)
  516. #define        TEXTJUSTB_RIGHT        9
  517. #define        TEXTJUSTF_RIGHT        (1L<<9)
  518. #define        TEXTJUST_CENTER_H    TEXTJUSTF_LEFT+TEXTJUSTF_RIGHT
  519. #define        TEXTJUSTB_TOP        10
  520. #define        TEXTJUSTF_TOP        (1L<<10)
  521. #define        TEXTJUSTB_BOTTOM    11
  522. #define        TEXTJUSTF_BOTTOM    (1L<<11)
  523. #define        TEXTJUST_CENTER_V    TEXTJUSTF_TOP+TEXTJUSTF_BOTTOM
  524. #define    BVS_TextTitle        BVS_SYSTEM+0x0006|BTA_type_CString
  525. #define BVS_ImageFlags        BVS_SYSTEM+0x0007|BTA_type_Flags
  526. #define        IMAGEFILL_bits        0x0000F000
  527. #define        IMAGEFILL_NONE        0x00000000
  528. #define        IMAGEFILL_SOLID        0x00001000
  529. #define        IMAGEFILL_CHECKERED    0x00002000
  530. #define        IMAGEFILL_LIGHTCHECK    0x00003000
  531. #define        IMAGEPICT_bits        0x00F00000
  532. #define        IMAGEPICT_NONE        0x00000000
  533. #define        IMAGEPICT_ONCE        0x00100000
  534. #define        IMAGEPICT_ALL        0x00200000
  535. #define    BVS_ObjectType        BVS_SYSTEM+0x0008|BTA_type_Flags
  536. #define        OBJECTTYPEFAMILY_bits            0x000000FF
  537. #define        OBJECTTYPEFAMILY_default        0x00000000
  538. #define        OBJECTTYPEFAMILY_TEXTBUTTON        0x00000001
  539. #define        OBJECTTYPEFAMILY_WINDOWLAYOUT        0x00000002
  540. #define        OBJECTTYPEFAMILY_DRAGBARLAYOUT        0x00000003
  541. #define        OBJECTTYPEFAMILY_WINDOWCONTENTSLAYOUT    0x00000004
  542. #define        OBJECTTYPEFAMILY_DRAGBARBUTTON        0x00000005
  543. #define        OBJECTTYPEFAMILY_LAYOUT            0x00000006
  544. #define        OBJECTTYPEFAMILY_STRINGGADGET        0x00000007
  545. #define        OBJECTTYPEFAMILY_LABEL1            0x00000008
  546. #define        OBJECTTYPEFAMILY_LABEL2            0x00000009
  547. #define        OBJECTTYPEFAMILY_LABEL3            0x0000000A
  548. #define        OBJECTTYPEFAMILY_LABEL4            0x0000000B
  549. #define        OBJECTTYPEFAMILY_WINDOWSTATUSBAR    0x0000000C
  550. #define        OBJECTTYPEFAMILY_IMAGEBUTTON        0x0000000D
  551. #define    BVS_LayoutType        BVS_SYSTEM+0x0009|BTA_type_Flags    /**** The same as BVS_ObjectType ****/
  552. #define    BVS_PositionType    BVS_SYSTEM+0x000A|BTA_type_Flags    /**** The same as BVS_ObjectType ****/
  553. #define    BVS_IWindow        BVS_SYSTEM+0x000B|BTA_type_Pointer
  554. #define    BVS_ImageTitle        BVS_SYSTEM+0x000C|BTA_type_Filename
  555. #define    BVS_WindowTitle        BVS_SYSTEM+0x000D|BTA_type_CString
  556. #define    BVS_FontAttr        BVS_SYSTEM+0x000E|BTA_type_Pointer
  557. #define    BVS_FontHeight        BVS_SYSTEM+0x000F|BTA_type_Plain
  558. #define    BVS_FontStyle        BVS_SYSTEM+0x0010|BTA_type_Plain
  559. #define    BVS_FontFlags        BVS_SYSTEM+0x0011|BTA_type_Flags
  560. #define    BVS_FontName        BVS_SYSTEM+0x0012|BTA_type_CString
  561.  
  562.  
  563. #define    BVS_ForegroundColor     BVS_SYSTEM+0x0104|BTA_type_Plain
  564. #define    BVS_BackgroundColor     BVS_SYSTEM+0x0105|BTA_type_Plain
  565. #define    BVS_OutlineColor     BVS_SYSTEM+0x0106|BTA_type_Plain
  566. #define BVS_Shine100Color    BVS_SYSTEM+0x0107|BTA_type_Plain
  567. #define BVS_Shine75Color    BVS_SYSTEM+0x0108|BTA_type_Plain
  568. #define BVS_Shine50Color    BVS_SYSTEM+0x0109|BTA_type_Plain
  569. #define BVS_Shine25Color    BVS_SYSTEM+0x010A|BTA_type_Plain
  570. #define BVS_Shadow100Color    BVS_SYSTEM+0x010B|BTA_type_Plain
  571. #define BVS_Shadow75Color    BVS_SYSTEM+0x010C|BTA_type_Plain
  572. #define BVS_Shadow50Color    BVS_SYSTEM+0x010D|BTA_type_Plain
  573. #define BVS_Shadow25Color    BVS_SYSTEM+0x010E|BTA_type_Plain
  574. #define BVS_Fill100Color    BVS_SYSTEM+0x010F|BTA_type_Plain
  575. #define BVS_Fill75Color        BVS_SYSTEM+0x0110|BTA_type_Plain
  576. #define BVS_Fill50Color        BVS_SYSTEM+0x0111|BTA_type_Plain
  577. #define BVS_Fill25Color        BVS_SYSTEM+0x0112|BTA_type_Plain
  578. #define BVS_Mark100Color    BVS_SYSTEM+0x0113|BTA_type_Plain
  579. #define BVS_Mark75Color        BVS_SYSTEM+0x0114|BTA_type_Plain
  580. #define BVS_Mark50Color        BVS_SYSTEM+0x0115|BTA_type_Plain
  581. #define BVS_Mark25Color        BVS_SYSTEM+0x0116|BTA_type_Plain
  582. #define    BVS_Back100Color    BVS_SYSTEM+0x0117|BTA_type_Plain
  583. #define BVS_Back75Color        BVS_SYSTEM+0x0118|BTA_type_Plain
  584. #define    BVS_Back50Color        BVS_SYSTEM+0x0119|BTA_type_Plain
  585. #define BVS_Back25Color        BVS_SYSTEM+0x011A|BTA_type_Plain
  586. #define    BVS_TextColor        BVS_SYSTEM+0x011B|BTA_type_Plain
  587. #define    BVS_ImageForeColor    BVS_SYSTEM+0x011C|BTA_type_Plain
  588. #define BVS_ImageBackColor    BVS_SYSTEM+0x011D|BTA_type_Plain
  589.  
  590. #define    BVS_X1            BVS_SYSTEM+0x0200|BTA_type_Plain
  591. #define    BVS_Y1            BVS_SYSTEM+0x0201|BTA_type_Plain
  592. #define    BVS_Z1            BVS_SYSTEM+0x0202|BTA_type_Plain
  593. #define    BVS_X2            BVS_SYSTEM+0x0203|BTA_type_Plain
  594. #define    BVS_Y2            BVS_SYSTEM+0x0204|BTA_type_Plain
  595. #define    BVS_Z2            BVS_SYSTEM+0x0205|BTA_type_Plain
  596. #define BVS_LayoutWidth        BVS_SYSTEM+0x0206|BTA_type_Plain
  597. #define    BVS_LayoutHeight    BVS_SYSTEM+0x0207|BTA_type_Plain
  598. #define BVS_LayoutDepth        BVS_SYSTEM+0x0208|BTA_type_Plain
  599. #define BVS_LayoutLeft        BVS_SYSTEM+0x0209|BTA_type_Plain
  600. #define    BVS_LayoutTop        BVS_SYSTEM+0x020A|BTA_type_Plain
  601. #define    BVS_LayoutRight        BVS_SYSTEM+0x020B|BTA_type_Plain
  602. #define BVS_LayoutBottom    BVS_SYSTEM+0x020C|BTA_type_Plain
  603. #define    BVS_LayoutPlacement    BVS_SYSTEM+0x020D|BTA_type_Plain
  604. #define        LAYOUTPLACEMENT_D_bits    0xFF000000
  605. #define        LAYOUTPLACEMENT_P_bits    0x00000FFF        /* Position number */
  606. #define BVS_LayoutFlags        BVS_SYSTEM+0x020E|BTA_type_Plain
  607. #define        LAYOUTFLAGS_W_bits    0x0000000F
  608. #define        LAYOUTFLAGS_H_bits    0x000000F0
  609. #define        LAYOUTFLAGS_L_bits    0x00000F00
  610. #define        LAYOUTFLAGS_T_bits    0x0000F000
  611. #define        LAYOUTFLAGS_R_bits    0x000F0000
  612. #define        LAYOUTFLAGS_B_bits    0x00F00000
  613. #define        LAYOUTFLAGS_OR_bits    0x0F000000
  614. #define        LAYOUTFLAGS_bits    0xF0000000
  615.  
  616. #define        LAYOUTFLAGS_W_bits    0x0000000F
  617. #define        LAYOUTFLAGS_W_FRAC    0x00000001        /* FRAC = Fraction number */
  618. #define        LAYOUTFLAGS_W_PARENT    0x00000002        /* PARENT = Taken value from the parent */
  619. #define        LAYOUTFLAGS_W_INTERN    0x00000003        /* INTERN = The owner will take care of the values...automagically */
  620. #define        LAYOUTFLAGS_H_bits    0x000000F0
  621. #define        LAYOUTFLAGS_H_FRAC    0x00000010
  622. #define        LAYOUTFLAGS_H_PARENT    0x00000020
  623. #define        LAYOUTFLAGS_H_INTERN    0x00000030
  624. #define        LAYOUTFLAGS_L_bits    0x00000F00
  625. #define        LAYOUTFLAGS_L_FRAC    0x00000100
  626. #define        LAYOUTFLAGS_L_PARENT    0x00000200
  627. #define        LAYOUTFLAGS_T_bits    0x0000F000
  628. #define        LAYOUTFLAGS_T_FRAC    0x00001000
  629. #define        LAYOUTFLAGS_T_PARENT    0x00002000
  630. #define        LAYOUTFLAGS_R_bits    0x000F0000
  631. #define        LAYOUTFLAGS_R_FRAC    0x00010000
  632. #define        LAYOUTFLAGS_R_PARENT    0x00020000
  633. #define        LAYOUTFLAGS_B_bits    0x00F00000
  634. #define        LAYOUTFLAGS_B_FRAC    0x00100000
  635. #define        LAYOUTFLAGS_B_PARENT    0x00200000
  636. #define        LAYOUTFLAGS_OR_Horz    0x01000000        /* The elements are horizontal oriented */
  637. #define        LAYOUTFLAGS_OR_Vert    0x02000000
  638. #define        LAYOUTFLAGSF_RENDERED    0x10000000
  639.  
  640. #define    BVS_BorderWidth        BVS_SYSTEM+0x0210|BTA_type_Plain
  641. #define    BVS_TextWidth        BVS_SYSTEM+0x0211|BTA_type_Plain
  642. #define    BVS_TextHeight        BVS_SYSTEM+0x0212|BTA_type_Plain
  643. #define    BVS_MarginLeft        BVS_SYSTEM+0x0213|BTA_type_Plain
  644. #define    BVS_MarginTop        BVS_SYSTEM+0x0214|BTA_type_Plain
  645. #define    BVS_MarginRight        BVS_SYSTEM+0x0215|BTA_type_Plain
  646. #define    BVS_MarginBottom    BVS_SYSTEM+0x0216|BTA_type_Plain
  647. #define BVS_ImageWidth        BVS_SYSTEM+0x0217|BTA_type_Plain
  648. #define    BVS_ImageHeight        BVS_SYSTEM+0x0218|BTA_type_Plain
  649.  
  650. #define    BVS_2dPoint        BVS_SYSTEM+0x0300|BTA_type_Plain
  651. #define    BVS_2dLine        BVS_SYSTEM+0x0301|BTA_type_Plain
  652. #define    BVS_2dRectangle        BVS_SYSTEM+0x0302|BTA_type_Plain
  653. #define BVS_2dText        BVS_SYSTEM+0x0303|BTA_type_Plain
  654.  
  655.  
  656. /**********************************************
  657.  **** Method Flags for the OBJ_DoMethod routine
  658.  ****/
  659.  
  660. #define MTHF_DOCHILDREN        0x00000001
  661. #define MTHF_DOPARENTS        0x00000002
  662. #define MTHF_DISPOSED         0x00000004    /* INTERNAL: Somewhere an object must be disposed */
  663. #define MTHF_EVENTDISPOSE    0x00000008     /* INTERNAL: MUST be used in combination with the MTHF_DISPOSED
  664.                            flag, now *also* the eventobject will be disposed. */
  665. #define MTHF_PASSTOCHILD    0x00000010
  666. #define MTHF_BREAKPASSTOCHILD    0x00000020    /* No more delegation through any children. */
  667.  
  668. #define    MTHF_ERROR          0x00000040
  669. #define MTHF_FATALERROR        0x00000080
  670. #define MTHF_BREAK        0x00000100
  671.  
  672. #define    MTHF_B52_bits        0x0000F000    /* Methodflags used by B52 */
  673.  
  674. /*****************
  675.  **** Beast macros
  676.  ****/
  677. #define eq ==
  678. #define Macro_GetInstance Object->obj_DataSection;
  679. #define Macro_SetAttr( Structure, Attribute ) case Attribute: Structure = cur_ti->ti_Data; break;
  680. #define Macro_GetAttr( Structure, Attribute ) case Attribute: cur_ti->ti_Data = Structure; break;
  681.  
  682. #endif     /* BEAST_BEAST_H */
  683.